home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------------------------------
- -- ERWENTDL.FIV --
- -- Copyright (C) Logic Works, Inc. 1994 --
- -- --
- -- Stored function to delete ERwin entity from --
- -- the Oracle CASE 5.1 dictionary --
- ------------------------------------------------------------------------- */
- CREATE OR REPLACE FUNCTION ERWENTDL (pName CI_ENTITIES.NAME%TYPE,
- pApp CI_APPLICATION_SYSTEMS.NAME%TYPE,
- pVersion CI_APPLICATION_SYSTEMS.VERSION%TYPE,
- pEntityID CI_ENTITIES.ID%TYPE)
- RETURN CI_ENTITIES.ID%TYPE
- AS
- TYPE recApp IS RECORD
- (ID CI_APPLICATION_SYSTEMS.ID%TYPE,
- NAME CI_APPLICATION_SYSTEMS.NAME%TYPE,
- VERSION CI_APPLICATION_SYSTEMS.VERSION%TYPE);
- TYPE recEntity IS RECORD
- (APPLICATION_SYSTEM_OWNED_BY CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY%TYPE,
- ID CI_ENTITIES.ID%TYPE,
- NAME CI_ENTITIES.NAME%TYPE);
- prEntity recEntity;
- stEntity cioentity.data;
- workingAppID CI_APPLICATION_SYSTEMS.ID%TYPE;
- act_status varchar2(100);
- act_warnings varchar2(100);
- BEGIN
- if cdapi.initialized = false then
- RETURN -1;
- end if;
- IF pVersion = 0 THEN
- SELECT APPLICATION_SYSTEM_OWNED_BY, ID, NAME INTO prEntity
- FROM CI_ENTITIES
- WHERE CI_ENTITIES.NAME=UPPER(pName)
- AND CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY =
- (SELECT ID FROM CI_APPLICATION_SYSTEMS WHERE
- CI_APPLICATION_SYSTEMS.NAME = UPPER(pApp) AND
- CI_APPLICATION_SYSTEMS.LATEST_VERSION_FLAG='Y');
- ELSE
- SELECT APPLICATION_SYSTEM_OWNED_BY, ID, NAME INTO prEntity
- FROM CI_ENTITIES
- WHERE CI_ENTITIES.NAME=UPPER(pName)
- AND CI_ENTITIES.APPLICATION_SYSTEM_OWNED_BY =
- (SELECT ID FROM CI_APPLICATION_SYSTEMS WHERE
- CI_APPLICATION_SYSTEMS.NAME = UPPER(pApp) AND
- CI_APPLICATION_SYSTEMS.VERSION=pVersion);
- END IF;
- cdapi.open_activity;
- cioentity.del(prEntity.ID);
- cdapi.validate_activity(act_status, act_warnings);
- cdapi.close_activity(act_status);
- if act_status != 'Y' then
- cdapi.abort_activity;
- RETURN -1;
- else
- RETURN prEntity.ID;
- end if;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN
- if cdapi.activity is not null then
- cdapi.abort_activity;
- end if;
- RETURN -1;
- WHEN OTHERS THEN
- if cdapi.stacksize > 0 then
- if cdapi.activity is not null then
- cdapi.abort_activity;
- end if;
- else
- if cdapi.activity is not null then
- cdapi.abort_activity;
- end if;
- end if;
- RETURN -1;
- END ERWENTDL;
- /
-